<?php

/*
 * Полезные методы для работы с файловой системой
 */

namespace T4;

class FS {
    
    /**
     * Список поддиректорий данной
     * @param string $dir Путь до заданной директории
     * @param boolean $ignoreDotted Игнорировать поддиректории с именами, начинающимися с точки?
     * @return array Список поддиректорий данной, полные пути 
     */
    public static function getSubDirs($dir, $ignoreDotted = true) {
	
	if ( !file_exists($dir) || !is_dir($dir) )
	    throw new Exception('Путь ' . $dir . ' не существует или не является директорией');
	
	if ( !is_readable($dir) )
	    throw new Exception('Путь ' . $dir . ' не может быть прочитан - недостаточно прав');
	
	$ret = array();
	$iterator = new \DirectoryIterator(($dir));

	foreach ( $iterator as $fileinfo ) {
	    
	    if ( !$fileinfo->isDir() )
		continue;
	    
	    if ( $fileinfo->isDot() )
		continue;
	    
	    if ($ignoreDotted && substr($fileinfo->getBasename(), 0, 1) == '.' )
		continue;
	    
	    $ret[] = $fileinfo->getPathname();
	    
	}
	
	return $ret;
	
    }
    
}